package main

import (
	"fmt"
)

/*
冒泡排序的原理是，
	对给定的数组进行多次遍历，每次均比较相邻的两个数，如果前一个比后一个大，
	则交换这两个数。经过第一次遍历之后，最大的数就在最右侧了；第二次遍历之后，
	第二大的数就在右数第二个位置了；以此类推。
*/
func bubbleSort(nums []int) []int {
	for i := 0; i < len(nums); i++ {
		for j := 1; j < len(nums)-i; j++ {
			if nums[j] < nums[j-1] {
				nums[j], nums[j-1] = nums[j-1], nums[j]
			}
		}
	}
	return nums

}

func containsDuplicate(nums []int) bool {

	// 从小到大排序
	//sort.Ints(nums)
	sortNum := bubbleSort(nums)
	for i := 1; i < len(sortNum); i++ {
		//fmt.Println(i)
		if sortNum[i] == sortNum[i-1] {
			return true
		}
	}

	return false
}

func main() {
	num := []int{1, 2, 3, 4}
	fmt.Println(containsDuplicate(num))
	//fmt.Println(bubbleSort(num))

}
